/*
 * 描          述:  <描述>
 * 修  改   人:  Administrator
 * 修改时间:  2016年8月4日
 * <修改描述:>
 */
package com.tx.component.basicdata.model;

/**
 * 地理区域类型<br/>
 * <功能详细描述>
 * 
 * @author  Administrator
 * @version  [版本号, 2016年8月4日]
 * @see  [相关类/方法]
 * @since  [产品/模块版本]
 */
public enum DistrictTypeEnum implements BasicDataEnum {
    
    //村/社区/队/
    VILLAGE("VILLAGE", "村/社区", 4),
    
    //乡/镇/街道
    TOWN("TOWN", "乡/镇/街道", 3),
    
    //县(区、县级市)
    COUNTY("COUNTY", "县/区/县级市", 2),
    
    //地级市(州\旗)
    CITY("CITY", "地级市/州/旗", 1),
    
    //省(直辖市、自治区、特别行政区)
    PROVINCE("PROVINCE", "省/直辖市/自治区/特别行政区", 0),
    
    //直辖市
    PROVINCE_ZXS("PROVINCE_ZXS", "直辖市", 0),
    
    //自治区
    PROVINCE_ZZQ("PROVINCE", "自治区", 0),
    
    //特别行政区
    PROVINCE_TBXZQ("PROVINCE_TBXZQ", "特别行政区", 0);
    
    private final String code;
    
    private final String name;
    
    private final int level;
    
    /** <默认构造函数> */
    private DistrictTypeEnum(String code, String name, int level) {
        this.code = code;
        this.name = name;
        this.level = level;
    }
    
    /**
     * @return 返回 code
     */
    @Override
    public String getCode() {
        return code;
    }
    
    /**
     * @return 返回 name
     */
    @Override
    public String getName() {
        return name;
    }
    
    /**
     * @return 返回 level
     */
    public int getLevel() {
        return level;
    }
    
    public static DistrictTypeEnum getInstanceByLevel(int level) {
        switch (level) {
            case 0:
                return PROVINCE;
            case 1:
                return CITY;
            case 2:
                return COUNTY;
            case 3:
                return TOWN;
            case 4:
                return VILLAGE;
        }
        return null;
    }
}
